LogBarrier.hpp implements the log barrier method.

Following set of variables can be changed for the method:
line 143: no_it = number of iteration of the log barrier method.

Line 143: no_it_min = number of iterations of the method after the quality of the worst element stops improving.

Line 143: mutol variable can be used to set the criteria for the penalty term. If mu goes below mu, the algorithm stops. 

Line 225, 227, 229: Choose one of the three unconstrained optimization methods: Conjugate Gradient, Feasible Newton, or
Steepest Descent.  The codes for those three algorithm are copy-pasted from Mesquite's function. It is not possible to call 
them from here. So I had to copy-paste them


IntPtTemplate.hpp implements the objective function for the log barrier method.

line 59: Initial values for mu and factor why which mu is reduced, mufac, can be set here.

VolSumLengthQM.hpp

Mesquite does not support mutiple quality metrics for one element. Here, we implement volume/length^3 metric for every
side of a tetrahedra. For the purpose of measuring the quality of an element, we take minimum over all edges. For 
the purpose of evaluting the objective function that is minimised in the log barrier method. We need to take all
the qualities, subtract 't', take  log, and then add them up. Thus, I have one more function for this. If value=1e6, 
this function is executed. If your metric has only one quality per element, you write the function in the usual way.


NOTE: The quality has to be maximised. Code accordingly.

AngleQM.hpp computes the smallest angle.


In PS.hpp and MDS.hpp Please ignore the big commented section. That was for restricting the movement along a plane
for the Star domain in the log barrier paper.

PS.hpp implements the pattern search algorithm

line 232-237: Set the pattern directions.
line 423: count set the number of iterations.
line 440: decrease the step size by some factor (< 1)if mesh become tangled due to a long step. 
line 459, 461: decrease the step size by some factor (< 1)if none of the steps along a pattern give a better mesh. 
line 681: increase the step size by a factor (>1). Refer to PS method for when to do it.

MDS.hpp implements the multidirection search methos:
line 206-209: Define the simplex.
line 469: decrease the step size by some factor (< 1)if mesh become tangled due to a long step. 
line 486: decrease the step size by some factor (< 1)if mesh's quality does not increase after the movement. 
line 794: increase the step size by some factor (> 1)if mesh's quality does increase after the movement. 

tutorial.cpp

This file is to be used in the usual way. 




To run the algorithms:
%make tutorial
%./tutorial file.vtk

